using System;
using PostSharp.Extensibility;

namespace CriticalSystems.Instrumentation
{
    /// <summary>
    /// Traces entry and exit from a method.
    /// </summary>
    [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Module |
                    AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method
                    | AttributeTargets.Constructor,
        AllowMultiple = true, Inherited = false)]
    [MulticastAttributeUsage(MulticastTargets.Method | MulticastTargets.InstanceConstructor, AllowMultiple = true)]
    [RequirePostSharp("CriticalSystems.Instrumentation", "CriticalSystems.Instrumentation")]
    public sealed class TracingAttribute : MulticastAttribute
    {
    }
}